package com.turing.post.organization.util;

import java.math.BigInteger;
import java.util.List;

import javax.ejb.Local;
import javax.ejb.Remote;

import com.turing.post.util.PCPSApplicationException;
import com.turing.post.util.PCPSWebInput;

/**
 * 发卡商渠道收益机构
 * 
 * @author zxp
 * @Dec 18, 2012
 */
@Remote
@Local
public interface IncomeBranchDao {

	/**
	 * 根据主键查询
	 * 
	 * @param incomeBranchId
	 *            发卡商渠道收益机构id
	 * @return IncomeBranch 发卡商渠道收益机构
	 */
	public IncomeBranch getIncomeBranchByIncomeBranchId(
			BigInteger incomeBranchId);

	/**
	 * 根据发卡商编号查询发卡商渠道收益机构
	 * 
	 * @param issueCompanyNo
	 *            发卡商号
	 * @return List 发卡商渠道收益机构列表
	 */
	public List<IncomeBranch> getIncomeBranchListByIssueCompanyNo(
			String issueCompanyNo);

	/**
	 * 查询发卡商渠道收益机构记录总数
	 * 
	 * @param webInput
	 *            日志记录对象
	 * @return BigInteger 记录总数
	 */
	public BigInteger getIncomeBranchTotal(PCPSWebInput webInput);

	/**
	 * 分页查询发卡商渠道收益机构
	 * 
	 * @param webInput
	 *            日志记录对象
	 * @param page
	 *            页码
	 * @return List 发卡商渠道收益机构列表
	 */
	public List<IncomeBranch> getIncomeBranchList(PCPSWebInput webInput,
			Integer page);

	/**
	 * 新增发卡商渠道收益机构
	 * 
	 * @param incomeBranch
	 *            发卡商渠道收益机构
	 */
	public void insertIncomeBranch(IncomeBranch incomeBranch)
			throws PCPSApplicationException;

	/**
	 * 修改发卡商渠道收益机构
	 * 
	 * @param incomeBranch
	 *            发卡商渠道收益机构
	 */
	public void updateIncomeBranch(IncomeBranch incomeBranch)
			throws PCPSApplicationException;
	//
	// /**
	// * 删除发卡商渠道收益机构
	// * @param incomeBranchId
	// * @throws PCPSApplicationException
	// */
	// public void deleteIncomeBranchByIncomeBranchId(BigInteger incomeBranchId)
	// throws PCPSApplicationException;
	
	/**
	 * 查询发卡商渠道收益机构列表
	 */
	public List<IncomeBranch> getAllIncomeBranchList(PCPSWebInput webInput);
	/**
	 * 根据id删除收益机构
	 */
	public void deleteIncomeBranch(IncomeBranch incomeBranch)throws PCPSApplicationException;
	/**
	 * 根据id验证收益机构是否被引用
	 */
	public int isIncomeBranch(String issuecompanyno,String incomeBranchid)throws PCPSApplicationException;
}
